[IA64] Modify destroy code for PV-on-HVM on IPF
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Mon, 28 Aug 2006 19:11:17 +0000 (13:11 -0600)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Mon, 28 Aug 2006 19:11:17 +0000 (13:11 -0600)
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
Signed-off-by: Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com>
xen/arch/ia64/xen/domain.c

index 699bd6bff702a35148000c9ebbb2c6a6d490a144..5eca64e9a3683460d477135f76a17d27ca4aaae0 100644 (file)
@@ -400,8 +400,16 @@ fail_nomem:
 void arch_domain_destroy(struct domain *d)
 {
        BUG_ON(d->arch.mm.pgd != NULL);
-       if (d->shared_info != NULL)
-           free_xenheap_pages(d->shared_info, get_order_from_shift(XSI_SHIFT));
+       if (d->shared_info != NULL) {
+               /* If this domain is domVTi, the shared_info page may
+                * be replaced with domheap. Then the shared_info page
+                * frees in relinquish_mm().
+                */
+               if (IS_XEN_HEAP_FRAME(virt_to_page(d->shared_info))) {
+                       free_xenheap_pages(d->shared_info,
+                                          get_order_from_shift(XSI_SHIFT));
+               }
+       }
        if (d->arch.shadow_bitmap != NULL)
                xfree(d->arch.shadow_bitmap);